Construction of Veriied Software Systems with Program-checking: an Application to Compiler Back-ends
نویسندگان
چکیده
This paper describes how program-checking can be used to signiicantly reduce the amount of veriication work to establish the implementation correctness of software systems which may be partly generated by unveriied construction tools. We show the practicability of our approach with an application to the construction of veriied compiler back-ends. The basic idea of program-checking is to use an unveriied algorithm whose results are checked by a veriied component at run time. Run-Time Result Veriication in our approach assures formal correct-ness of the software system and its implementation if partial correctness of the application is suucient. In our example the approach does not only simplify the construction of veriied compilers because checking the result of the transformations is much simpler to verify than the veri-cation of an optimizing code selection. Furthermore, we are still able to use existing compiler generator tools without modiications. Compiler veriication plays two roles in this paper: First it closes the gap between veriication on high-level programming language and the implementation on machine level using a veriied compiler to translate the veriied program to machine code. Second it serves as a large-scale case study for software veriication. This work points out the tasks which still have to be veriied and it discusses the exibility of the approach. 1
منابع مشابه
Practical Construction of Correct Compiler Implementations by Runtime Result Verification
Software verification is an expensive and tedious job, even software in safety critical applications is tested only. This paper deals with the construction of compilers as an exmaple for big software systems that are hard to verifiy. We describe how program-checking can be used to establish the full correctness of optimizing compilers which may be partly generated by unverified construction too...
متن کاملThe RTL System: A Framework for Code Optimization
The construction of compiler front and back-ends is understood well enough for a great deal of the work to be automated. This paper describes the RTL System, which helps construct the rest of the compiler|the optimizer|by providing a exible set of classes with a large number of prede ned algorithms that the compiler writer can customize. The RTL System di ers from systems to construct compiler ...
متن کاملA Mechanically Veriied Application for a Mechanically Veriied Environment
We have developed a veriied application proved to be both eeective and eecient. The application generates moves in the puzzle-game Nim and is coded in Piton, a language with a formal semantics and a compiler veriied to preserve its semantics on the underlying machine. The Piton compiler is targeted to the FM9001, a recently fabricated veriied microprocessor. The Nim program correctness proof ma...
متن کاملOn-the-Fly API Influence Analysis of Software
In order to combat the state space explosion resulting from explicit-state model checking of software, we investigate the use of a parameterised boolean equation system (Pbes) to solve on-the-fly (i.e., with incremental construction of the program state space) influence analysis of program variables w.r.t. Application Programming Interface (Api) calls executed in the program. The static analysi...
متن کاملFormal foundations for hybrid effect analysis
Type-and-effect systems are a powerful tool for program construction and verification. Type-andeffect systems are useful because it help reduce bugs in computer programs, enable compiler optimizations and provide program documentation. As software systems increasingly embrace dynamic features and complex modes of compilation, static effect systems have to reconcile over competing goals such as ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999